iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0
Mobile Development

從零開始學習 Jetpack Compose系列 第 19

從零開始學習 Jetpack Compose Day18 - 狀態管理

  • 分享至 

  • xImage
  •  

在第二天的內容中提到,宣告式 UI 需要將狀態與對應的 UI 元件綁定,當狀態變化時 UI 會自動更新。在 Jetpack Compose 中,這可以透過 remembermutableStateOf 來實現。remember 用來在重組時保持狀態,而 mutableStateOf 用來創建一個可觀察的狀態對象。當狀態發生變化時,UI 會自動重新組合並反映最新的狀態,這使得 UI 與狀態的管理更加簡潔高效。

remember

remember 允許我們保存某個狀態值,避免在每次重組時重置。這樣可以確保狀態在重組過程中得以保留,例如用來保存用戶輸入、動畫進度等。

mutableStateOf

mutableStateOf 包裝一個值時,這個值會變成一個可觀察的狀態,當它改變時,系統會自動重新組合 UI 並更新顯示。它通常用來管理 UI 的狀態,讓 UI 在數據變化時自動更新。

@Composable
fun Greeting(modifier: Modifier = Modifier) {
    var name by remember { mutableStateOf("") }
    var text by remember { mutableStateOf("") }
    Column(
        horizontalAlignment = Alignment.CenterHorizontally,
        modifier = Modifier
        .fillMaxWidth()
        .padding(16.dp)
    ) {
        Text(
            text = "Hello! ${name}",
            modifier = Modifier.padding(bottom = 8.dp),
            style = MaterialTheme.typography.bodyMedium
        )
        OutlinedTextField(
            value = text,
            onValueChange = {
                text = it
            },
            label = { Text("Name") }
        )
        Button(
            onClick = {
                name = text
            }
        ) {
            Text("Login")
        }
    }
}

https://raw.githubusercontent.com/jian-fu-hung/ithelp-2024/refs/heads/main/Images/Day18/%E6%88%AA%E5%9C%96%202024-10-03%20%E6%99%9A%E4%B8%8A11.21.12.png

點擊登入後
https://raw.githubusercontent.com/jian-fu-hung/ithelp-2024/refs/heads/main/Images/Day18/%E6%88%AA%E5%9C%96%202024-10-03%20%E6%99%9A%E4%B8%8A11.21.34.png


上一篇
從零開始學習 Jetpack Compose Day17 - Canvas + Animate
下一篇
從零開始學習 Jetpack Compose Day19 - Compose 搭配 ViewModel
系列文
從零開始學習 Jetpack Compose30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言